void BFS_MIN_Distance(MGraph* G, int u)
{
	for(int i=0;i<G->vertex_num; i++)
	{
		d[i]=-1;	//	初始化路径长度
	}
	
	d[u]=0;
	
	visited[u]=true;	//开始结点u设置为已遍历
	EnQueue(&Q, u);
	
	
	while(!QueueIsEmpty(&Q))
	{
		int elem;	//elem为出队列的元素
		DeQueue(&Q, &elem);
		//注意：NextNeighbor(G, u, w)中u不能改变，因为找的就是与u相邻的顶点，
		//在邻接矩阵中始终查询的就是第u行
		for(int w=FirstNeighbor(&G, elem); w>=0; w=NextNeighbor(G, u, w))
		{
			if(!visited[w])
			{
				visited[w]=true;
				d[w]=d[u]+1;
				EnQueue(&Q, w);
			}
		}
	}
}
